package com.javacrafting.mifos.domain;

import java.util.Set;

public class LoanAccountImpl extends AccountImpl implements LoanAccount {

	private Integer id;
	private Short gracePeriodType;
	private Short numberOfInstallments;
	private Boolean redone;
	
	private LoanAccountSummary loanAccountSummary;
	private LoanAccountPerformanceHistory loanAccountPerformanceHistory;
	private LoanAccountMaxMinLoanAmount loanAccountMaxMinLoanAmount;
	private LoanAccountMaxMinNoOfInstall loanAccountMaxMinNoOfInstall;
	
	private Set<LoanSchedule> loanSchedules;
	
	public LoanAccountImpl() {
		// default constructor for hibernate
	}
	
	public LoanAccountImpl(final Short gracePeriodType, final Short numberOfInstallments, final Boolean redone) {
		this.gracePeriodType = gracePeriodType;
		this.numberOfInstallments = numberOfInstallments;
		this.redone = redone;
	}

	public Integer getId()
	{
		return id;
	}

	public void setId(Integer id)
	{
		this.id = id;
	}

	public Short getGracePeriodType()
	{
		return gracePeriodType;
	}

	public void setGracePeriodType(Short gracePeriodType)
	{
		this.gracePeriodType = gracePeriodType;
	}

	public Short getNumberOfInstallments()
	{
		return numberOfInstallments;
	}

	public void setNumberOfInstallments(Short numberOfInstallments)
	{
		this.numberOfInstallments = numberOfInstallments;
	}

	public Boolean getRedone()
	{
		return redone;
	}

	public void setRedone(Boolean redone)
	{
		this.redone = redone;
	}

	public LoanAccountSummary getLoanAccountSummary()
	{
		return loanAccountSummary;
	}

	public void setLoanAccountSummary(LoanAccountSummary loanAccountSummary)
	{
		this.loanAccountSummary = loanAccountSummary;
	}

	public LoanAccountPerformanceHistory getLoanAccountPerformanceHistory()
	{
		return loanAccountPerformanceHistory;
	}

	public void setLoanAccountPerformanceHistory(LoanAccountPerformanceHistory loanPerformanceHistory)
	{
		this.loanAccountPerformanceHistory = loanPerformanceHistory;
	}

	public LoanAccountMaxMinLoanAmount getLoanAccountMaxMinLoanAmount()
	{
		return loanAccountMaxMinLoanAmount;
	}

	public void setLoanAccountMaxMinLoanAmount(LoanAccountMaxMinLoanAmount loanAccountMaxMinLoanAmount)
	{
		this.loanAccountMaxMinLoanAmount = loanAccountMaxMinLoanAmount;
	}

	public LoanAccountMaxMinNoOfInstall getLoanAccountMaxMinNoOfInstall()
	{
		return loanAccountMaxMinNoOfInstall;
	}

	public void setLoanAccountMaxMinNoOfInstall(LoanAccountMaxMinNoOfInstall loanAccountMaxMinNoOfInstall)
	{
		this.loanAccountMaxMinNoOfInstall = loanAccountMaxMinNoOfInstall;
	}

	public Set<LoanSchedule> getLoanSchedules()
	{
		return loanSchedules;
	}

	public void setLoanSchedules(Set<LoanSchedule> loanSchedules)
	{
		this.loanSchedules = loanSchedules;
	}
}